<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of Egresos
 *
 * @author Ivan
 */
class Pagos extends CI_Model{
    //put your code here
    var $id;
    var $id_reserva;
    var $fecha_pago;
    var $monto_reserva;
    var $monto_consumo;
    var $monto_total;
    var $anulado;
    var $fecha_usuario;
    var $id_usuario;
    var $monto_senia;
    
function __construct()
    {
        parent::__construct();
    }
    
    
    
    function listarTodos()
    {
        //$query = $this->db-> get_where('t_reservas_pago', array('anulado'=> 0));
        //return $query->result();
        $variable = "SELECT  `t_reservas_pago`.`id` ,`t_reservas`.`fecha_salida`,`t_reservas_pago`.`id_reserva` , `t_habitaciones`.`nombre` AS habitacion,`t_reservas`.`monto` as monto_reserva,`t_reservas_pago`.`monto_consumo`,(`t_reservas`.`monto` * DATEDIFF( t_reservas.fecha_salida,  `t_reservas`.`fecha_llegada` ) +`t_reservas_pago`.`monto_consumo`) as total, 
    `t_clientes`.`apellido` ,`t_clientes`.`nombre` ,`t_reservas_pago`.`fecha_pago`,STR_TO_DATE(`t_reservas_pago`.`fecha_usuario`,'%Y-%m-%d %H:%i:%s'),`t_reservas_pago`.`usuario`,`t_reservas_pago`.`anulado`,`t_reservas_pago`.`monto_senia`,`t_reservas`.`senia`,`t_reservas_pago`.`late_checkout`,DATEDIFF( `t_reservas`.`fecha_salida`,  `t_reservas`.`fecha_llegada` ) as dias 
     FROM `t_reservas_pago` JOIN  `t_reservas` ON  `t_reservas`.`id` =  `t_reservas_pago`.`id_reserva` 
     JOIN  `t_clientes` ON  `t_reservas`.`id_cliente` =  `t_clientes`.`id` 
     JOIN  `t_habitaciones` ON  `t_reservas`.`id_habitacion` =  `t_habitaciones`.`id` 
     WHERE  `t_reservas_pago`.`anulado`=0 and `t_reservas_pago`.`monto_total`>0
                UNION
                SELECT  `t_reservas`.`id` ,`t_reservas`.`fecha_salida`,  `t_reservas`.`id` AS  `id_reserva` ,  `t_habitaciones`.`nombre` AS  `habitacion` , 0 AS  `monto_reserva` , 0 AS `monto_consumo` , `t_reservas`.`senia` as total,   `t_clientes`.`apellido` ,  `t_clientes`.`nombre` ,  `t_reservas`.`fecha_senia` AS `fecha_pago` ,  `t_reservas`.`fecha_usuario` ,  `t_reservas`.`id_usuario` as `usuario` ,  `t_reservas`.`estado` AS  `anulado` ,  `t_reservas`.`senia` AS `monto_senia` ,  `t_reservas`.`senia`,0 as `late_checkout`,DATEDIFF( `t_reservas`.`fecha_salida`,  `t_reservas`.`fecha_llegada` ) as dias
                FROM  `t_reservas` 
                JOIN  `t_clientes` ON  `t_reservas`.`id_cliente` =  `t_clientes`.`id` 
                JOIN  `t_habitaciones` ON  `t_reservas`.`id_habitacion` =  `t_habitaciones`.`id`
                WHERE `t_reservas`.`estado`<>3 and `t_reservas`.`senia`>0";
        
        $resultado =$this->db->query($variable);
        return $resultado->result();
    }
    
     function getPago($id){
        $variable = "SELECT  `t_reservas_pago`.`id` ,`t_reservas_pago`.`id_reserva` , `t_habitaciones`.`nombre` AS habitacion,`t_reservas_pago`.`monto_reserva`,`t_reservas_pago`.`monto_consumo`,`t_reservas_pago`.`monto_total`,`t_reservas`.`fecha_llegada`,`t_reservas`.`fecha_salida`, 
    `t_clientes`.`apellido` ,`t_clientes`.`nombre` ,`t_reservas_pago`.`fecha_pago`,`t_reservas_pago`.`fecha_usuario`,`t_reservas_pago`.`usuario`,`t_reservas_pago`.`anulado`,`t_reservas_pago`.`monto_senia`,`t_reservas`.`senia`,`t_reservas_pago`.`late_checkout` , DATEDIFF( t_reservas.fecha_salida,  `t_reservas`.`fecha_llegada` ) AS dias 
     FROM `t_reservas_pago` JOIN  `t_reservas` ON  `t_reservas`.`id` =  `t_reservas_pago`.`id_reserva` 
     JOIN  `t_clientes` ON  `t_reservas`.`id_cliente` =  `t_clientes`.`id` 
     JOIN  `t_habitaciones` ON  `t_reservas`.`id_habitacion` =  `t_habitaciones`.`id` 
     WHERE  `t_reservas_pago`.`anulado`=0 and `t_reservas_pago`.`id`='".$id."'";
        $resultado =$this->db->query($variable);
        return $resultado->first_row();
                
    }
    
    
    function anular($idreserva)
    {
        $this->db->trans_start();
        $this->db->where('id_reserva',$idreserva);
        $datos = array('anulado'=>1,'usuario'=>$this->session->userdata('usuario'),'fecha_usuario'=>NOW());
        $this->db->update('t_reservas_pago',$datos);
        $this->db->trans_complete(); 
        if($this->db->trans_status() == FALSE)
        {
            show_error('Error de baja. CODIGO: ' . $this->db->_error_message());
        }
        $this->db->trans_start();
        $this->db->where('id',$idreserva);
        $datos = array('pagado'=>0);
        $this->db->update('t_reservas',$datos);
        $this->db->trans_complete(); 
        if($this->db->trans_status() == FALSE)
        {
            show_error('Error de baja. CODIGO: ' . $this->db->_error_message());
        }else{
            header('Location: ' . base_url() . 'cpago/consultar'); 
        }
    }
    
    function get_data_pdf(){ 
        $result= $this->db-> get_where('t_reservas_pago', array('anulado'=> 0));
        $arrDatos=array(); 
        foreach ($result->result_array() as $row){ 
            $arrDatos[] = array( htmlspecialchars($row['id'],ENT_QUOTES), htmlspecialchars($row['fecha'],ENT_QUOTES),htmlspecialchars($row['descripcion'],ENT_QUOTES),htmlspecialchars($row['referencia'],ENT_QUOTES),htmlspecialchars($row['monto'],ENT_QUOTES), ); 
            
        } 
        $result->free_result(); 
        $this->db->close(); 
        return($arrDatos);
     }
     
     function buscarPagos($mostrar1,$todos,$pasajero="",$habitacion="",$desde="",$hasta="", $limite,$principio)
    { 
     

         $cadena="select t_reservas.id ,t_reservas.fecha_salida,t_reservas.id AS id_reserva,IFNULL(t_reservas_pago.late_checkout,0) as late_checkout, t_habitaciones.nombre AS  habitacion ,IFNULL( t_reservas.senia,t_reservas_pago.monto_senia) as monto_senia,t_reservas.senia as monto_reserva,IFNULL(t_reservas_pago.monto_consumo,0) as monto_consumo, IFNULL(t_reservas_pago.monto_total,t_reservas.senia) as monto_total,t_clientes.apellido ,  t_clientes.nombre ,TO_DAYS(t_reservas.fecha_salida)-TO_DAYS(t_reservas.fecha_llegada) as dias,IFNULL(t_reservas_pago.fecha_pago,t_reservas.fecha_reserva) as fecha_pago ,t_reservas.fecha_usuario ,t_reservas.id_usuario as usuario , t_reservas.estado AS  anulado, t_reservas.senia as monto_total,t_reservas.fecha_senia, IFNULL((t_reservas.monto * DATEDIFF( t_reservas.fecha_salida, t_reservas.fecha_llegada) +t_reservas_pago.monto_consumo),t_reservas.senia) as total
                from t_reservas JOIN  t_clientes ON  t_reservas.id_cliente =  t_clientes.id 
                JOIN  t_habitaciones ON  t_reservas.id_habitacion =  t_habitaciones.id
                LEFT JOIN  t_reservas_pago ON  t_reservas.id =  t_reservas_pago.id_reserva
                WHERE t_reservas.estado<>3 and t_reservas.senia>0
                and (
                                (  '" . $desde . "' <= fecha_llegada and fecha_llegada < '" . $hasta . "' ) 
                                or ( '" . $desde . "' < fecha_salida and fecha_salida <= '" . $hasta . "' )
                             ) 
                 and t_habitaciones.nombre like '%". $habitacion ."%'
                 and t_clientes.apellido like '%". $pasajero ."%'
                order by t_reservas.fecha_salida";
                


        $resultado = $this->db->query($cadena);
        return $resultado->result();
        
    }
    
}

?>